export function strlen(value) {
	//中文、中文标点、全角字符按1长度，英文、英文符号、数字按0.5长度计算
	let cnReg = /([\u4e00-\u9fa5]|[\u3000-\u303F]|[\uFF00-\uFF60])/g;
	let mat = value.match(cnReg);
	let length = 0;
	if (mat) {
		return (length = mat.length + (value.length - mat.length) * 0.5);
	} else {
		return (length = value.length * 0.5);
	}
}

export function isWechatBrowser() {
	// #ifdef H5	
	let ua = window.navigator.userAgent.toLowerCase()
	if (ua.match(/MicroMessenger/i) == 'micromessenger') {
		return true
	}
	// #endif
	return false
}

export function getQueryString(name, url) {
	var url = url || window.location.href
	var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i')
	var r = url.substr(1).match(reg)
	if (r != null) {
		return r[2]
	}
	return null
}

export function uniCopy({
	content,
	success,
	error
}) {
	content = typeof content === 'string' ? content : content.toString() // 复制内容，必须字符串，数字需要转换为字符串
	//#ifndef H5
	uni.setClipboardData({
		data: content,
		success: function() {
			success("复制成功~")
		},
		fail: function() {
			error("复制失败~")
		}
	});
	//#endif
	// #ifdef H5
	if (!document.queryCommandSupported('copy')) { //为了兼容有些浏览器 queryCommandSupported 的判断
		// 不支持
		error('浏览器不支持')
	}
	let textarea = document.createElement("textarea")
	textarea.value = content
	textarea.readOnly = "readOnly"
	document.body.appendChild(textarea)
	textarea.select() // 选择对象
	textarea.setSelectionRange(0, content.length) //核心
	let result = document.execCommand("copy") // 执行浏览器复制命令
	if (result) {
		success("复制成功~")
	} else {
		error("复制失败，请检查h5中调用该方法的方式，是不是用户点击的方式调用的，如果不是请改为用户点击的方式触发该方法，因为h5中安全性，不能js直接调用！")
	}
	textarea.remove()
	// #endif
}

//设置缓存
export function setDb(name, value, db_time = 7200) {
	let time = (new Date()).getTime();
	let data = {
		value: value,
		time: time,
		db_time: db_time
	}
	uni.setStorageSync(name, data);
}
//获取缓存
export function getDb(name) {
	try {
		let res = uni.getStorageSync(name);
		if (!res) {
			return '';
		}
		let time = (new Date()).getTime();
		if ((time - res.time) / 1000 >= res.db_time) {
			uni.removeStorageSync(name);
			return '';
		}
		return res.value;
	} catch (e) {
		//TODO handle the exception
		return '';
	}
}

//下载图片
export function image_cache(image_url) {
	return new Promise((resolve, reject) => {
		let arr = image_url.split('/');
		let image_name = arr[arr.length - 1];
		var u = getDb('kee' + image_name);
		if (u) {
			resolve(u);
		} else {
			// 本地没有缓存 需要下载
			uni.downloadFile({
				url: image_url,
				success: res => {
					if (res.statusCode === 200) {
						uni.saveFile({
							tempFilePath: res.tempFilePath,
							success: function(res) {
								setDb('kee' + image_name, res.savedFilePath)
								resolve(res.savedFilePath);
							}
						});
					} else {
						reject('下载失败');
					}
				},
				fail: function() {
					reject('下载失败');
				}
			});
		}
	});
}

/*
 *是否在数组内
 */

export function in_array(search, array) {
	for (var i in array) {
		if (array[i] == search) return true
	}
	return false
}

/*
 *是否在数组内
 */

export function goBack(delta = 1) {
	const pages = getCurrentPages()
	if (pages.length > 1) {
		uni.navigateBack({
			delta: Number(delta || 1)
		})
	} else {
		//判断是否登录
		uni.reLaunch({
			url: 'pages/index/index'
		})
	}
}
